package chapter2;

/**
 * @author Hang
 * @date 2022/8/7
 * @project AutumnOffer
 * @description 面试题3 题目一
 **/
public class findRepeatNumber {
    public static void main(String[] args) {
        int[] nums = new int[]{2, 3, 1, 0, 2, 5, 3};
        System.out.println(findRepeatNumber(nums));
    }
    public static int findRepeatNumber(int[] nums){
        for(int i=0;i<nums.length;i++){
            while(i != nums[i]){
                int tmp = nums[i]; // 记录当前下标的数组值
                if(tmp == nums[tmp]){ // 如果当前下标的值等于数组的值，则说明已经重复了
                    return tmp;
                }else{ // 否则将当前下标的索引值与当前值进行交换
                    nums[i] = nums[tmp];
                    nums[tmp] = tmp;
                }
            }
        }
        return -1; // 没有重复返回
    }
}
